/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CONTROLES;

import MODELOS.Sueldo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Marco Antonio
 */
public class ControlSueldo {

    public ControlSueldo(){}

    public void guardarSueldo(Sueldo e) {
        Conexion conection = new Conexion();

        try {

            Connection conectado = conection.getConexion();
            PreparedStatement ps =
            conectado.prepareStatement("INSERT INTO SUELDO(id_sueldo,id_empleado,monto_sueldo,fecha_pago,id_usuario,id_sucursal)VALUES "+ "(nextval('sueldo_id_sueldo_seq'),'"+e.getIdEmpleado()+"','"+e.getMontoSueldo()+"','"+e.getFechaPago()+"','"+e.getIdUsuario()+"','"+e.getIdSucursal()+"')");
            ps.executeUpdate();
            ps.close();
    }   catch (SQLException ex) {
            System.out.println("Ocurrio un error al registrar el sueldo" +ex.getLocalizedMessage());
        }
  }

    public ArrayList<Sueldo> getListaSueldosPagados(int idSucursal, Date fechaI, Date fechaF) {
        Conexion conection = new Conexion();
       ArrayList<Sueldo> res = new ArrayList<Sueldo>();
       Sueldo c;
       try{
            Connection conectado = conection.getConexion();
            PreparedStatement psc = conectado.prepareStatement("select * from sueldo where id_sucursal = '"+idSucursal+"' AND fecha_pago >= '"+fechaI+"' AND fecha_pago <= '"+fechaF+"' ORDER BY fecha_pago DESC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){

                c= new Sueldo();
                c.setIdSueldo(respEmp.getInt(1));
                c.setIdEmpleado(respEmp.getInt(2));
                c.setMontoSueldo(respEmp.getDouble(3));
                c.setFechaPago(respEmp.getDate(4));
                c.setIdUsuario(respEmp.getInt(5));
                c.setIdSucursal(respEmp.getInt(6));
                
                res.add(c);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar lista de Sueldos Pagados " + e.getLocalizedMessage());
        }

        return res;
    }

     public ArrayList<Sueldo> getListaSueldoXEmpleado(int idEmpleado) {
        Conexion conection = new Conexion();
       ArrayList<Sueldo> res = new ArrayList<Sueldo>();
       Sueldo c;
       try{
            Connection conectado = conection.getConexion();
            PreparedStatement psc = conectado.prepareStatement("select * from sueldo where id_empleado = '"+idEmpleado+"' ORDER BY fecha_pago DESC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){

                c= new Sueldo();
                c.setIdSueldo(respEmp.getInt(1));
                c.setIdEmpleado(respEmp.getInt(2));
                c.setMontoSueldo(respEmp.getDouble(3));
                c.setFechaPago(respEmp.getDate(4));
                c.setIdUsuario(respEmp.getInt(5));
                c.setIdSucursal(respEmp.getInt(6));

                res.add(c);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar lista de Sueldos x empleado " + e.getLocalizedMessage());
        }

        return res;
    }

     public Sueldo dameSueldo(int idSueldo) {
        Conexion conection = new Conexion();
        Sueldo sueldo = new Sueldo();
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select * from sueldo where id_sueldo ='"+idSueldo+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                sueldo.setIdSueldo(respA.getInt(1));
                sueldo.setIdEmpleado(respA.getInt(2));
                sueldo.setMontoSueldo(respA.getDouble(3));
                sueldo.setFechaPago(respA.getDate(4));
                sueldo.setIdUsuario(respA.getInt(5));
                sueldo.setIdSucursal(respA.getInt(6));

            }

        } catch (SQLException ex) {
            System.out.println("Error buscar sueldo por su id : "+ex.getLocalizedMessage());
        }
    return sueldo;
    }


}

